#!/usr/bin/python
# -*- coding: utf-8 -*-

from PyQt4 import QtCore, QtGui
from PythonUI.Ui_Page10 import Ui_Page10 #Cette page hérite du fichier généré par pyuic4
from exportXML import exportXML
import re
import os
import sys
from PyQt4.QtCore import Qt
from Main import *

class Page10(Ui_Page10,QtGui.QDialog):
    """
    Affiche la représentation graphique des résultats sur la salle
    """
    
    def __init__(self,session):
        """
        Fonction d'initialisation
        """
        self.app = QtGui.QApplication(sys.argv)
        QtGui.QDialog.__init__(self)
        self.session=session
        self.retour=0
        self.parametre={}
        self.dicosalle={}
        self.dicobatiment={}
        self.dicoaccesspoint={}
        self.dicocampagne={}
        self.config={}
        self.oldx = 0
        self.oldy = 0
        self.nbMesure=0
        self.fichier_final=""

    def fin(self):
        """
        Fonction appelee lors de la validation du  bouton 'OK'
        Ferme le programme
        """
        self.close()        

    def export(self):
        """
        Permet l'export XML dans le répertoire de l'utilisateur
        """
        filename = str(QtGui.QFileDialog.getSaveFileName(self, 'Export XML',os.path.expanduser('~')))
        if filename != '':
            sortie1 = exportXML(filename)
            sortie1.writeXML()
    
    def initdico(self):
        """
        Initialise le dictionnaire des salles
        """
        expr=re.compile('[a-zA-Z]')        
        #On initialise les differents dico pour l export XML et laffichage de l'image finale
        fichier=open(os.path.expanduser('~') + '/.GWA/dicosalle','r')
        for line in fichier.readlines():
            if expr.findall(line):
                self.dicosalle[line.split(':')[0].split('\n')[0]]=line.split(':')[1].split('\n')[0]
        fichier.close()
        regex=re.compile('(.*)/(.*)\..*')
        result_regex=regex.findall(self.dicosalle["url_plan"])    
        fichierNomCourt=result_regex[0][1]
        self.fichier_final=os.path.expanduser('~')+'/.GWA/'+fichierNomCourt+str("_final.png")

    def affich(self,param):
        """
        Fonction permettant a cette page d'etre appele directement par Main.py
        en entrant "./Main.py 10"
        """
        self.setupUi(self)
        self.show()
        sys.exit(self.app.exec_())


    def setupUi(self, Dialog):
        """
        Definition de l'interface graphique.
        La majorite de cette fonction est decrite dans le fichier genere par pyuic4 dans PythonUI/...
        """
        Ui_Page10.setupUi(self,Dialog)
        self.initdico()
        objImg = QtGui.QImage(self.fichier_final)
        self.label_plan.setPixmap(QtGui.QPixmap.fromImage(objImg.scaled(600,400,Qt.KeepAspectRatio,Qt.FastTransformation)))
        self.retranslateUi(Dialog)
        QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("accepted()"), self.fin)
        QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("rejected()"), self.fin)
        QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL("clicked()"), self.export)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

